package Doc;

/**
 * es默认有两个端口  9300：TCP端口   9200：http端口
 * 1.es默认没有可视化界面，需要安装elasticSearch-head（js服务器，需要安装node,node安装后需要安装gunt:命令 npm install -g grunt-cli ）
 * 2.启动elasticSearch-head服务  命令：grunt server
 * 3.解决通过head访问 es跨域问题  再D:\Program Files\elasticsearch-6.2.1\config\elasticsearch.yml(es安装路径下配置文件路径)
 *   下 添加配置：        http.cors.enabled: true
 *                       http.cors.allow-origin: "*"
 * 4.启动esf服务 ( D:\Program Files\elasticsearch-6.2.1\bin\elasticsearch.bat )
 * 5. es数据结构和关系型数据库对比
 *     DB -> Databases -> Tables -> Rows     ->  Columns
 *     ES -> Indices   -> Types  -> Documents ->  Fields
 *  6.es索引操作见 resources/es索引操作.postman_collection.json   导入postman可查看操作细节
 */
public class Desc {
/**
* 一：使用java客户端管理ES
* 1. 创建索引库
* 步骤
*    1)创建一个Java工程
*    2)添加jar包，添加maven的坐标
*    3)编写测试方法实现创建索引库
*        1、创建一个Setting对象，相当于一个配置信息，主要配置集群的名称
*        2、创建一个客户端Clien对象
*        3、使用client对象创建一个索引库
*        4、关闭client对象
* 2. 使用java客户端设置Mappings步骤
*     1) 创建一个Setting对象
*     2) 创建一个Client对象
*     3) 创建一个maooing信息，应该是一个json数据，可以是字符串，也可以是XcontentBuilder对象
*     4) 使用client向es服务器发送mapping信息
*     5) 关闭client对象
* 3. 添加文档步骤
*    1) 创建一个Setting对象
*    2) 创建一个Client对象
*    3) 创建一个文档对象，创建一个json格式的字符串，或者使用XContentBuilder
*    4) 使用client对象把文档添加到索引库中
*    5) 关闭client对象
* 4. 添加文档第二种方式
*    创建一个pojo类
*    使用工具类把pojo对象转换成json字符串
*    把文档写入索引库
* 一：使用es客户端实现搜索
* 1. 根据id搜索
* 2. 根据Term查询（关键词）
* 3.QueryString查询方式（待分析的查询）
* 查询步骤
 *   1) 创建一个Client对象
 *   2) 创建一个查询对象，可以使用QueryBuilder工具类创建Querybuilder对象
 *   3) 使用client执行查询
 *   4) 得到查询结果
 *   5) 取查询结果总记录数
 *   6) 取查询结果列表
 *   7) 关闭client
 *4.分页的处理
 *    在QueryBuilder对象中查询之前，设置分页信息，然后再执行查询
 *     SearchResponse response = client.prepareSearch("index_hello")
 *                 .setTypes("article")
 *                 .setQuery(qubuilder)
 *                 // 设置分页信息
 *                 .setFrom(0)
 *                 // 每页显示的行数
 *                 .setSize(5)
 *                 .get();
 *     分页需要设置两个值，一个是from,size
 *     from:起始行数
 *     size:每页显示数
 *5、查询结果高亮显示
 *      1.设置高亮显示的字段
 *      2.设置高亮显示的前缀
 *      3.设置高亮显示的后缀
 * 在client对象执行查询之前，这只高亮显示的信息
 * 遍历结果列表时可以从结果中取高亮结果
*/



/**
 * spring data elasticsearch
 *1.工程搭建
 *    1）创建一个spring的配置文件
 *    2）配置elasticsearch:transport-client
 *    3）配置elasticsearchTemplate对象
 *2.管理索引库
 *     1）entity类（映射类，映射到一个 文档），注解标注
 *     2) 创建一个Dao,是一个接口，需要继承ElasticSearchRepositiry接口
 *     3) 编写测试代码
 */
}
